home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / nan_news / toolkit / daytobow.prg < prev    next >
Text File  |  1991-08-15  |  2KB  |  77 lines

  1. /*
  2.  * File......: DAYTOBOW.PRG
  3.  * Author....: Jo W. French dba Practical Computing
  4.  * CIS_ID....: 74731,1751
  5.  * Date......: $Date:   15 Aug 1991 23:03:16  $
  6.  * Revision..: $Revision:   1.2  $
  7.  * Log file..: $Logfile:   E:/nanfor/src/daytobow.prv  $
  8.  * 
  9.  * The functions contained herein are the original work of Jo W. French
  10.  * and are placed in the public domain.
  11.  *
  12.  * Modification history:
  13.  * ---------------------
  14.  *
  15.  * $Log:   E:/nanfor/src/daytobow.prv  $
  16.  * 
  17.  *    Rev 1.2   15 Aug 1991 23:03:16   GLENN
  18.  * Forest Belt proofread/edited/cleaned up doc
  19.  * 
  20.  *    Rev 1.1   14 Jun 1991 19:51:28   GLENN
  21.  * Minor edit to file header
  22.  * 
  23.  *    Rev 1.0   01 Apr 1991 01:01:04   GLENN
  24.  * Nanforum Toolkit
  25.  *
  26.  */
  27.  
  28. /*  $DOC$
  29.  *  $FUNCNAME$
  30.  *     FT_DAYTOBOW()
  31.  *  $CATEGORY$
  32.  *     Date/Time
  33.  *  $ONELINER$
  34.  *     Calculate no. of days between date and beginning of week
  35.  *  $SYNTAX$
  36.  *     FT_DAYTOBOW( [ <dGivenDate> ] ) -> nDays
  37.  *  $ARGUMENTS$
  38.  *     <dGivenDate> is any valid date in any valid date format.
  39.  *     Defaults to current date if not supplied.
  40.  *  $RETURNS$
  41.  *     A positive number of days to beginning of week, range 0 to 6.
  42.  *  $DESCRIPTION$
  43.  *     FT_DAYTOBOW() returns the number of days to the beginning of the
  44.  *     week.  Normally this will be one less than the value that
  45.  *     would be returned by the Clipper function DOW(), unless the
  46.  *     day for the beginning of the week has been changed with
  47.  *     FT_DATECNFG().
  48.  *  $EXAMPLES$
  49.  *     dDate := CTOD( "09/15/90" )
  50.  
  51.  *     ? DOW( dDate )               // Saturday
  52.  *     ? CDOW( dDate )              // 7
  53.  *     ? FT_DAYTOBOW( dDate )       // 6
  54.  *
  55.  *     // change beginning of week to Friday  (yeah!)
  56.  *     FT_DATECNFG( , 6 )
  57.  *     ? DOW( dDate )               // Saturday
  58.  *     ? CDOW( dDate )              // 7
  59.  *     ? FT_DAYTOBOW( dDate )       // 1
  60.  *  $SEEALSO$
  61.  *     FT_DATECNFG() FT_ACCTWEEK() FT_WEEK()
  62.  *  $END$
  63. */
  64.  
  65. FUNCTION FT_DAYTOBOW(dGivenDate)
  66.  
  67.   LOCAL nRetVal, aTemp, nDOW_Start
  68.  
  69.   aTemp := FT_DATECNFG()
  70.   nDOW_Start := aTemp[2]
  71.   dGivenDate := IF(VALTYPE(dGivenDate) != 'D', DATE(), dGivenDate)
  72.   nRetVal := DOW(dGivenDate)
  73.   nRetVal := IF(nRetVal - nDOW_Start < 0, nRetVal - nDOW_Start + 7,;
  74.                  nRetVal - nDOW_Start)
  75. RETURN nRetVal
  76.  
  77.